using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using RealSoftDotNet;
using System.Data.SqlClient;
using System.Data;
using System.Collections.ObjectModel;
using System.Xml;


public partial class MachineManagement : System.Web.UI.Page
{

    protected void Page_Load(object sender, EventArgs e)
    {
        //Label1.Text = System.Configuration.ConfigurationManager.ConnectionStrings["Serverip"].ConnectionString;
        Response.Cache.SetCacheability(HttpCacheability.NoCache);
        if (!IsPostBack)
        {

            if (Session["fullaccess"].ToString().Trim() == "1")
            {
                lblInOutOnlyforAccessControl.Visible = true;
                DropDownList1.Visible = true;

            }
            else
            {
                lblInOutOnlyforAccessControl.Visible = false;
                DropDownList1.Visible = false;
            }


            Label1.Text = System.Configuration.ConfigurationManager.ConnectionStrings["serverip"].ConnectionString;
            if (Database.menutype == "H")
            {
                //// fileabcs


                MachineManagement12.Attributes.Add("class", "container-fluid");

            }

            else
            {
                MachineManagement12.Attributes.Add("class", "container");
            }
            txtportno.Text = System.Configuration.ConfigurationManager.ConnectionStrings["FingerDevicePort"].ConnectionString; 
            ReadOnlyCollection<TimeZoneInfo> tzi;
            tzi = TimeZoneInfo.GetSystemTimeZones();
            foreach (TimeZoneInfo timeZone in tzi)
            {
                DropDownList2.Items.Add(new ListItem(timeZone.DisplayName, timeZone.Id));
            }

            //if (Session["language"] == "English")
            //{
            //    lblAddEditMachine.Text = "Add/Edit Machine";
            //    Label39.Text = "Machine No";
            //    lblMachineType.Text = "Machine Type";
            //    Label38.Text = "Serial No.";
            //    lblPortNo.Text = "Port No.";
            //    lblMachineName.Text = "Machine Name";
            //    lblBranchName.Text = "Branch Name";
            //    cmdsave.Text = "Save";
            //    cmdcancel.Text = "Cancel";

            //    lblInOutOnlyforAccessControl.Text = "In/Out Only for Access Control";
            //    lblSelectCountrieTimeZone.Text = "Select Countrie Time Zone";
            //}
            if (Session["language"] != null)
            {
                string filename = Session["language"].ToString().Trim();
                XmlTextReader xmlreader = new XmlTextReader(Server.MapPath("~/App_Data/" + filename + ".xml"));
                //reading the xml data  
                DataSet ds = new DataSet();
                ds.ReadXml(xmlreader);
                xmlreader.Close();
                if (ds.Tables.Count != 0)
                {
                    //file
                    lblAddEditMachine.Text = ds.Tables["MachineManagement"].Rows[0]["lblAddEditMachine"].ToString();
                    Label39.Text = ds.Tables["MachineManagement"].Rows[0]["Label39"].ToString();
                    lblMachineType.Text = ds.Tables["MachineManagement"].Rows[0]["lblMachineType"].ToString();
                    Label38.Text = ds.Tables["MachineManagement"].Rows[0]["Label38"].ToString();
                    lblPortNo.Text = ds.Tables["MachineManagement"].Rows[0]["lblPortNo"].ToString();
                    lblMachineName.Text = ds.Tables["MachineManagement"].Rows[0]["lblMachineName"].ToString();
                    lblBranchName.Text = ds.Tables["MachineManagement"].Rows[0]["lblBranchName"].ToString();
                    cmdsave.Text = ds.Tables["MachineManagement"].Rows[0]["cmdsave"].ToString();
                    cmdcancel.Text = ds.Tables["MachineManagement"].Rows[0]["cmdcancel"].ToString();
                    lblInOutOnlyforAccessControl.Text = ds.Tables["MachineManagement"].Rows[0]["lblInOutOnlyforAccessControl"].ToString();
                    lblSelectCountrieTimeZone.Text = ds.Tables["MachineManagement"].Rows[0]["lblSelectCountrieTimeZone"].ToString();
                }
            }
            // if (Session["language"] == "Danish")
            //{
            //    XmlTextReader xmlreader = new XmlTextReader(Server.MapPath("~/App_Data/Danish.xml"));
            //    //reading the xml data  
            //    DataSet ds = new DataSet();
            //    ds.ReadXml(xmlreader);
            //    xmlreader.Close();
            //    //if ds is not empty  
            //    if (ds.Tables.Count != 0)
            //    {
            //        //file
            //        lblAddEditMachine.Text = ds.Tables["MachineManagement"].Rows[0]["lblAddEditMachine"].ToString();
            //        Label39.Text = ds.Tables["MachineManagement"].Rows[0]["Label39"].ToString();
            //        lblMachineType.Text = ds.Tables["MachineManagement"].Rows[0]["lblMachineType"].ToString();
            //        Label38.Text = ds.Tables["MachineManagement"].Rows[0]["Label38"].ToString();
            //        lblPortNo.Text = ds.Tables["MachineManagement"].Rows[0]["lblPortNo"].ToString();
            //        lblMachineName.Text = ds.Tables["MachineManagement"].Rows[0]["lblMachineName"].ToString();
            //        lblBranchName.Text = ds.Tables["MachineManagement"].Rows[0]["lblBranchName"].ToString();
            //        cmdsave.Text = ds.Tables["MachineManagement"].Rows[0]["cmdsave"].ToString();
            //        cmdcancel.Text = ds.Tables["MachineManagement"].Rows[0]["cmdcancel"].ToString();
            //        lblInOutOnlyforAccessControl.Text = ds.Tables["MachineManagement"].Rows[0]["lblInOutOnlyforAccessControl"].ToString();
            //        lblSelectCountrieTimeZone.Text = ds.Tables["MachineManagement"].Rows[0]["lblSelectCountrieTimeZone"].ToString();
            //    }
            //}
            //else if (Session["language"] == "vietnamese")
            //{
            //    lblAddEditMachine.Text = "Add/Edit Machine";
            //    Label39.Text = "S? m�y";
            //    lblMachineType.Text = "Machine Type";
            //    Label38.Text = "Serial No.";
            //    lblPortNo.Text = "Port No.";
            //    lblMachineName.Text = "Machine Name";
            //    lblBranchName.Text = "T�n chi nh�nh";
            //    cmdsave.Text = "Save";
            //    cmdcancel.Text = "Cancel";

            //    lblInOutOnlyforAccessControl.Text = "In/Out Only for Access Control";
            //    lblSelectCountrieTimeZone.Text = "Select Countrie Time Zone";
            //}

            //else if (Session["language"] == "Chiness")
            //{
            //    lblAddEditMachine.Text = "??/????";
            //    Label39.Text = "??ID";
            //    lblMachineType.Text = "????";
            //    Label38.Text = "????";
            //    lblPortNo.Text = "????";
            //    lblMachineName.Text = "????";
            //    lblBranchName.Text = "????";
            //    cmdsave.Text = "??";
            //    cmdcancel.Text = "??";
            //    lblSelectCountrieTimeZone.Text = "??????";

            //    lblInOutOnlyforAccessControl.Text = "?/???";

            //}
            //else if (Session["language"] == "Thai")
            //{
            //    lblAddEditMachine.Text = "????? / ????????????";
            //    Label39.Text = "??????????????";
            //    lblMachineType.Text = "?????????????";
            //    Label38.Text = "????????????";
            //    lblPortNo.Text = "????????????.";
            //    lblMachineName.Text = "???????????";
            //    lblBranchName.Text = "????????";
            //    cmdsave.Text = "??????";
            //    cmdcancel.Text = "??????";

            //    lblInOutOnlyforAccessControl.Text = "???? / ?????????????? ???????????????????";
            //    lblSelectCountrieTimeZone.Text = "??????????????????";
            //}
            //else if (Session["language"] == "Persian")
            //{
            //    lblAddEditMachine.Text = "????? ???? / ?????? ??????";
            //    Label39.Text = "????? ??????";
            //    lblMachineType.Text = "??? ??????";
            //    Label38.Text = "????? ?????";
            //    lblPortNo.Text = "????? ????";
            //    lblMachineName.Text = "??? ??????";
            //    lblBranchName.Text = "??? ????";
            //    cmdsave.Text = "?????";
            //    cmdcancel.Text = "??????";

            //    lblInOutOnlyforAccessControl.Text = "In / Out ??? ???? ????? ??????";
            //    lblSelectCountrieTimeZone.Text = "????? ????? ???? ?? ?????? ????";
            //}
            //else if (Session["language"] == "Arabic")
            //{
            //    lblAddEditMachine.Text = "????? ?????? ?????";
            //    Label39.Text = "??? ??????  ";
            //    lblMachineType.Text = " ??? ??????   ";
            //    Label38.Text = "????? ???????   ";
            //    lblPortNo.Text = "??? ??????? ";
            //    lblMachineName.Text = "??? ????? ";
            //    lblBranchName.Text = "??? ????? ";
            //    cmdsave.Text = "???";
            //    cmdcancel.Text = " ?????";

            //    lblInOutOnlyforAccessControl.Text = "?? / ???? ??? ??????? ??????";
            //    lblSelectCountrieTimeZone.Text = "??? ??????? ??????? ??????";
            //}
            //else if (Session["language"] == "Turkish")
            //{
            //    lblAddEditMachine.Text = "Ekle/Yonet makine";
            //    Label39.Text = "makine No";
            //    lblMachineType.Text = "makine tip";
            //    Label38.Text = "seri No.";
            //    lblPortNo.Text = "Liman No.";
            //    lblMachineName.Text = "makine isim";
            //    lblBranchName.Text = "Bolum isim";
            //    cmdsave.Text = "Kayit etmek";
            //    cmdcancel.Text = "Iptal etmek";

            //    lblInOutOnlyforAccessControl.Text = "Erisim Kontrol� i�in Yalnizca Giris / �ikis";
            //    lblSelectCountrieTimeZone.Text = "Countrie Saat Dilimini Se�in";
            //}


            if (Session["uid"] == null)
            {
                Response.Redirect("Default.aspx");
                return;


            }
            else
            {


                try
                {
                    Database.ExecuteTextDataTable(HttpContext.Current.Session["con"].ToString(), "Alter Table mst_machineType1 Add In_out varchar(20) ");
                }

                catch (Exception ere) { }
                try
                {
                    Database.ExecuteTextDataTable(HttpContext.Current.Session["con"].ToString(), "ALTER TABLE dbo.mst_machineType1 ALTER COLUMN MachineType  varchar(300) ");

                }

                catch (Exception sdfdsf) { }
                    try
                {
                    Database.ExecuteTextDataTable(HttpContext.Current.Session["con"].ToString(), "ALTER TABLE dbo.mst_machineType1 ALTER COLUMN machineno  varchar(100) ");
                }

                catch (Exception dsfsdf)
                {
                }
                DataTable dtdb = Database.ExecuteTextDataTable(HttpContext.Current.Session["con"].ToString(), "Select Distinct Branchid,Branch_Name from dbo.Mst_Branch where BranchId in(" + Session["Branch_per"].ToString() + ") order By Branchid ");
                CboBranch.DataSource = dtdb;
                CboBranch.DataValueField = dtdb.Columns[0].ToString();
                CboBranch.DataTextField = dtdb.Columns[1].ToString();
                CboBranch.DataBind();


                if (Convert.ToInt32(Request.QueryString["RowId"].ToString()) > 0)
                {
                    int Rwid = Convert.ToInt32(Request.QueryString["RowId"].ToString());
                    DataTable dt1 = Database.ExecuteTextDataTable(HttpContext.Current.Session["con"].ToString(), "Select * from dbo.mst_machineType1 Where MachineId=" + Rwid + "");
                    if (dt1.Rows.Count > 0)
                    {
                        txtmachineip.Text = dt1.Rows[0]["MachineIp"].ToString();
                        txtmachineno.Text = dt1.Rows[0]["MachineNo"].ToString();
                        txtportno.Text = dt1.Rows[0]["Port"].ToString();
                        txtpwd.Text = dt1.Rows[0]["Pwd"].ToString();
                        CboBranch.SelectedValue = dt1.Rows[0]["BranchId"].ToString();
                        DropDownList1.Text = dt1.Rows[0]["In_out"].ToString();
                        DropDownList2.Text = dt1.Rows[0]["TimeZone1"].ToString();
                        //txtmachineip.Enabled = false;

                        cbomachinetype.Text = dt1.Rows[0]["MachineType"].ToString();
                        txtDeviceId.Text = dt1.Rows[0]["IsDyndns"].ToString();
                        if (cbomachinetype.Text.Trim() == "Face")
                        {
                            txtportno.Text = "85";

                            //Label38.Text = "Device Id";

                            txtmachineno.Visible = false;
                            txtDeviceId.Visible = true;
                            Label39.Text = "Device Name";
                        }

                    }

                }

                else
                {
                    try
                    {

                        DataTable dtp = Database.ExecuteTextDataTable(HttpContext.Current.Session["con"].ToString(), " Select  isnull(Max(MachineNo),1) as DeviceId  from mst_machineType1");

                        if (dtp.Rows.Count > 0)
                        {
                            txtmachineno.Text = (int.Parse(dtp.Rows[0]["DeviceId"].ToString().Trim()) + 1).ToString();
                        }
                    }

                    catch (Exception sdf) { }

                }



                //Random rnd = new Random();
                //int month = rnd.Next(2001, 2003);
                //txtportno.Text = month.ToString();

            }

        }
    }


    protected void cmdcancel_Click(object sender, EventArgs e)
    {
        Response.Redirect("MachineList.aspx");
    }
    protected void cmdsave_Click(object sender, EventArgs e)
    {

        txtpwd.Text = txtpwd.Text.Replace(",", "");
        if (txtmachineno.Text.Length > 0)
        {
        }
        else
        {
            string str14 = "<script> alert('Message:Required Machine No!')</script>";
            Page.RegisterStartupScript("vv", str14.ToString());
            //lblmsg.Text = "Message:Required Machine Serial No!";
            txtmachineno.Focus();
            return;
        }


        if (txtmachineip.Text.Length > 0)
        {


        }

        else
        {
            string str14 = "<script> alert('Message:Required Machine Serial No!')</script>";
            Page.RegisterStartupScript("vv", str14.ToString());
            //lblmsg.Text = "Message:Required Machine Serial No!";
            txtmachineip.Focus();
            return;
        }

        if (CboBranch.SelectedValue.ToString().Trim() == "")
        {
            string str1 = "<script> alert('Message: Please create Company & Branch First!')</script>";
            Page.RegisterStartupScript("vv", str1.ToString());
            //lblmsg.Text = "Message:Required Machine Serial No!";
            txtmachineip.Focus();
            return;

        }



        string dydsn = "";
        if (Convert.ToInt32(Request.QueryString["RowId"].ToString()) == 0)
        {

            dydsn = "No";


            DataTable dtc = Database.ExecuteTextDataTable(Database._WF_APPLICATION, "Select * from  MachineDetails Where srno='" + txtmachineip.Text.Trim() + "'");
            if (dtc.Rows.Count > 0)
            {
                string str15 = "<script> alert('Message:This Serial No Already Exist In Our Database!')</script>";
                Page.RegisterStartupScript("vv", str15.ToString());
                txtmachineip.Focus();
                return;
            }



            Database.ExecuteText(Database._WF_APPLICATION, "Insert Into MachineDetails(Domain,srno) Values('" + HttpContext.Current.Session["con"].ToString().Trim() + "','" + txtmachineip.Text.Trim() + "')");

           // DataTable dtp = Database.ExecuteTextDataTable(Database._WF_APPLICATION, " Select  Max(DeviceId) as DeviceId from  MachineDetails Where Domain='" + HttpContext.Current.Session["con"].ToString().Trim() + "'");

           // if (dtp.Rows.Count > 0)
           // {



            Database.ExecuteText(HttpContext.Current.Session["con"].ToString(), "Insert into dbo.mst_machineType1(MachineNo,MachineType,MachineIp,Port,pwd,BranchId,UserId,IsDyndns,In_out,TimeZone1) Values(" + txtmachineno.Text.Trim() + ",'" + cbomachinetype.Text + "','" + txtmachineip.Text + "','" + txtportno.Text + "','" + txtpwd.Text + "'," + CboBranch.SelectedValue.ToString() + "," + Convert.ToInt32(Session["uid"].ToString()) + ",'" + txtDeviceId.Text.Trim() + "','" + DropDownList1.Text + "','" + DropDownList2.Text.Trim() + "')");
                string str1 = "<script> alert('Message:Record Successfully Save!)</script>";
                Page.RegisterStartupScript("vv", str1.ToString());
                Response.Redirect("MachineList.aspx");


           // }
        }
        else if (Convert.ToInt32(Request.QueryString["RowId"].ToString()) > 0)
        {

            dydsn = "No";

            DataTable dtc = Database.ExecuteTextDataTable(Database._WF_APPLICATION, "Select * from  MachineDetails Where srno='" + txtmachineip.Text.Trim() + "'");
            if (dtc.Rows.Count > 1)
            {
                string str16 = "<script> alert('Message:This Serial No Already Exist In Our Database!)</script>";
                Page.RegisterStartupScript("vv", str16.ToString());
                txtmachineip.Focus();
                return;
            }

            int rwid = Convert.ToInt32(Request.QueryString["RowId"].ToString());
            Database.ExecuteText(HttpContext.Current.Session["con"].ToString(), "Update dbo.mst_machineType1 Set In_out='" + DropDownList1.Text + "' ,MachineNo=" + txtmachineno.Text + ",MachineType='" + cbomachinetype.Text + "',MachineIp='" + txtmachineip.Text + "',Port='" + txtportno.Text + "',pwd='" + txtpwd.Text + "',BranchId=" + CboBranch.SelectedValue.ToString() + ",IsDyndns='" + txtDeviceId.Text.Trim() + "' ,TimeZone1='" + DropDownList2.Text.Trim() + "' Where MachineId=" + rwid + "");
            // Database.ExecuteText(HttpContext.Current.Session["con"].ToString(), "Update dbo.mst_machineType1 Set MachineNo=" + txtmachineno.Text + ",MachineType='" + cbomachinetype.Text + "',MachineIp='" + txtmachineip.Text + "',Port='" + txtportno.Text + "',pwd='" + txtpwd.Text + "',BranchId=" + CboBranch.SelectedValue.ToString() + ",IsDyndns='" + txtDeviceId.Text.Trim() + "'  Where MachineId=" + rwid + "");
            try
            {

                Database.ExecuteText(Database._WF_APPLICATION, "update  MachineDetails set srno='" + txtmachineip.Text.Trim() + "'  where  DeviceID=" + txtmachineno.Text + "");
            }
            catch (Exception fdf)
            { }
            string str12 = "<script> alert('Message:Record Successfully UpDated!)</script>";
            Page.RegisterStartupScript("vv", str12.ToString());
            Response.Redirect("MachineList.aspx");

        }
    }
    protected void cbomachinetype_SelectedIndexChanged(object sender, EventArgs e)
    {


        if (cbomachinetype.Text.Trim() == "FaceID terminals")
        {
            txtportno.Text = System.Configuration.ConfigurationManager.ConnectionStrings["FaceDevicePort"].ConnectionString;
            //Label38.Text = "Serial No";
            //txtmachineno.Visible = true;
            //txtDeviceId.Visible = false;
            //Label39.Text = "Device No";
        }
        else
        {

            txtportno.Text = System.Configuration.ConfigurationManager.ConnectionStrings["FingerDevicePort"].ConnectionString;
            //Label38.Text = "Serial No";
            //txtmachineno.Visible = true;
            //txtDeviceId.Visible = false;
           // Label39.Text = "Device No";

        }
    }
}